/**
 * 将 success/fail 风格的异步函数封装为 promise 风格
 * 
 * @param {Function} fn 原 success/fail 风格的异步函数
 */
export default function promisify(fn) {
    return function(params = {}) {
        return new Promise((resolve, reject) => {
            params.success = function(res) {
                resolve(res);
            }
    
            params.fail = function(res) {
                reject(res);
            }
    
            fn(params);
        })
    }
}